	#models should now have this syntax: AR_coeffs;d;MA_coeffs;alpha_coeffs;beta_coeffs;uncond.mean;uncond.variance;outliers;distn
	#each ";" delimited item is an order-decending list of parameters

"get.models" = function(current.model.index){	

Para = read.csv("Data/models.csv");

for(k in 1:(length(Para$Meta.Model.Index))){
       if (Para$Meta.Model.Index[k] == current.model.index) i = k;
    }
     
	if (Para$d[i] != "n"){
		d = Para$d[i];
	}else{
  		d = 0;
	}

    AR.specifications = get.specifications(as.character(Para$AR.Coeffs[i]))$ordered.params;
    MA.specifications = get.specifications(as.character(Para$MA.Coeffs[i]))$ordered.params;
    alpha.specifications = get.specifications(as.character(Para$alpha.Coeffs[i]))$ordered.params;
    beta.specifications = get.specifications(as.character(Para$beta.Coeffs[i]))$ordered.params;
    uncond.mean.specifications = get.specifications(as.character(Para$uncond.mean[i]))$ordered.params;
    uncond.variance.specifications = get.specifications(as.character(Para$uncond.variance[i]))$ordered.params;
    outliers.specifications = get.specifications(as.character(Para$outliers[i]))$ordered.params;
	#special case of non-numeric input and non-numeric parametric sweep...must be manually generated
    conditional.distribution.specifications = as.matrix(as.list(unlist(strsplit(as.character(Para$conditional.distribution[i]),","))));

    

	
    #combine all of the parameter sets
	models = as.matrix(as.list(outer(AR.specifications,as.character(d),FUN="concatenate.types")));
	models = as.matrix(as.list(outer(models,MA.specifications,FUN="concatenate.types")));
	models = as.matrix(as.list(outer(models,alpha.specifications,FUN="concatenate.types")));
	models = as.matrix(as.list(outer(models,beta.specifications,FUN="concatenate.types")));
	models = as.matrix(as.list(outer(models,uncond.mean.specifications,FUN="concatenate.types")));
	models = as.matrix(as.list(outer(models,uncond.variance.specifications,FUN="concatenate.types")));
	models = as.matrix(as.list(outer(models,outliers.specifications,FUN="concatenate.types")));
      models = as.matrix(as.list(outer(models,conditional.distribution.specifications,FUN="concatenate.types")));


  return(structure(list(models=models)));
}

